package br.ufrn.sipac.patrimonio.coletor.dao;

import java.sql.SQLException;
import java.util.List;

import android.content.Context;
import br.ufrn.sipac.patrimonio.coletor.dominio.Bem;
import br.ufrn.sipac.patrimonio.coletor.dominio.Unidade;

import com.j256.ormlite.stmt.QueryBuilder;

/**
 * 
 * DAO com consultas para os bens de patrim�nio.
 * 
 * @author Alisson Nascimento
 * @author Alessandro Marinho
 */
public class BemDAO extends GenericDaoORM<Bem> {

	public BemDAO(Context context) throws SQLException {
		super(context, Bem.class);
	}

	/**
	 * Retorna os bens da unidade passada como par�metro
	 * 
	 * @param idUnidade
	 * @return
	 * @throws SQLException
	 */
	public List<Bem> findByUnidade(int idUnidade) throws SQLException {
		QueryBuilder<Bem, Integer> bemDao = dao.queryBuilder();

		@SuppressWarnings("unchecked")
		QueryBuilder<Unidade, Integer> unidadeQb = (QueryBuilder<Unidade, Integer>) getDao(
				Unidade.class).queryBuilder();
		unidadeQb.where().eq("id", idUnidade);

		return bemDao.join(unidadeQb).query();
	}

	/**
	 * N�mero do tombamento
	 * 
	 * @param numTombamento
	 * @return
	 * @throws SQLException
	 */
	public Bem findByTombo(int numTombamento) throws SQLException {
		QueryBuilder<Bem, Integer> bemDao = dao.queryBuilder();
		return bemDao.where().eq("numTombamento", numTombamento)
				.queryForFirst();
	}

}
